# 创建stu表信息操作类：内有方法，构造方法实现数据库连接，析构方法关闭连接，findAll() 查询方法，del（id）-删除方法，insert（data）添加方法
# 导入pymysql
import pymysql
# 创建stu表信息操作类
class Stu:
    # 构造方法实现数据库连接
    def __init__(self):
        # 获取数据库连接
        self.db = pymysql.connect(host="localhost", user="root", password="", db="mydemo", charset="utf8")
        # 创建游标对象
        self.cursor = self.db.cursor()
    # 定义查询方法
    def findAll(self):
        sql = "select * from stu"
        try:
            self.cursor.execute(sql)
            print("当前学生信息",self.cursor.rowcount)
            alist = self.cursor.fetchall()
            for singel_record in alist:
                print(singel_record)
        except Exception as err:
            print("sql查询执行错误！ 原因:", err)
    # 定义删除方法
    def delete(self,id):
        sql = "delete from stu where id ={}".format(id)
        try:
            self.cursor.execute(sql)
            self.db.commit()
            print("成功删除条数：", self.cursor.rowcount)
        except Exception as err:
            self.db.rollback()
            print("删除数据失败，原因是：", err)
    # 定义添加方法
    def insert(self,data):
        sql = "insert into stu(name,age,classid) values ({})".format(data)
        try:
            self.cursor.execute(sql)
            self.db.commit()
        except Exception as err:
            self.db.roolback()
            print("添加数据失败，原因是：", err)
    # 析构方法关闭数据库连接
    def __del__(self):
        self.db.close()
